#include "widget.h"
#include "ui_widget.h"

#include <QDebug>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
}

Widget::~Widget()
{
    delete ui;
}

//通过 toPlainText 方法获取到内部的文本.
//类似的, QTextEdit 还提供了 toMarkdown 和 toHtml
//根据需要我们调整不同的获取方式
void Widget::on_textEdit_textChanged()
{
   const QString str = ui->textEdit->toPlainText();
   ui->label->setText(str);
}

//文本内容改变时触发
void Widget::on_textEdit_2_textChanged()
{
    qDebug() << "[textChanged]" << ui->textEdit_2->toPlainText();
}

//选中范围改变时触发
void Widget::on_textEdit_2_selectionChanged()
{
    const QTextCursor& cursor = ui->textEdit_2->textCursor();
    qDebug() << "[selectionChanged]" << cursor.selectedText();
}

//光标移动时触发
void Widget::on_textEdit_2_cursorPositionChanged()
{

    const QTextCursor& cursor = ui->textEdit_2->textCursor();
    qDebug() << "[cursorPositionChanged]" << cursor.position();
}

//可以进行undo操作时触发
//撤销 ctrl + z
void Widget::on_textEdit_2_undoAvailable(bool b)
{
    qDebug() << "[undoAvailable]" << b;
}

//可以进行redo操作时触发
//重做(撤销撤销) ctrl + y
void Widget::on_textEdit_2_redoAvailable(bool b)
{
    qDebug() << "[redoAvailable] " << b;
}

//文本被选中/取消选中时触发
//ctrl + a
void Widget::on_textEdit_2_copyAvailable(bool b)
{
    qDebug()<< "[copyAvailable]" << b;
}
